Welcome to pandas!

7.2 分组之常规分组

1、按多列标签分组

分组不但可以按指定的某列为依据,同样也可以按照指定的多列分组。

2、按序列分组

如果感觉对指定列标签分组不够灵活,可以对指定列做进一步处理再分组,按姓名列的字符数分组。

1、 按手动分组

如果你的分组没有任何规律可言,只希望通过手动实现分组,那么直接在by参数构建一个与DateFrame表格行记录数相同的序列对象即可。


import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.01 分组原理及处理.xlsx" )

for data in df.groupby(by=df.姓名.str.len()):

print (data)

print ("------------------------------------------")

返回:

(2, 公司 部门 姓名 工资
0 A公司 销售部 张三 8567
1 A公司 销售部 李四 8564
5 B公司 开发部 小曾 3264)

------------------------------------------


(3, 公司 部门 姓名 工资
2 A公司 财务部 许麻子 4563
3 B公司 开发部 郭麻子 3623
4 B公司 销售部 杨流子 5890)

------------------------------------------


import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.01 分组原理及处理.xlsx" )

l=[ "老虎队","老鼠队","老虎队","老鼠队","老鼠队","老虎队" ]

for t,d in df.groupby(by=l):

print (t)

print (d)

print ("------------------------------------------")

返回:

老虎队

公司 部门 姓名 工资
0 A公司 销售部 张三 8567
2 A公司 财务部 许麻子 4563
5 B公司 开发部 小曾 3264

------------------------------------------


老鼠队

公司 部门 姓名 工资
1 A公司 销售部 李四 8564
3 B公司 开发部 郭麻子 3623
4 B公司 销售部 杨流子 5890

------------------------------------------